#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

//一个简单的函数
// 形参和实参各⾃是独⽴的内存空间
//int add(int x, int y)
//{
//	return x + y;
//}
//
//
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	int c = add(a, b);
//	printf("%d", c);
//	return 0;
//}


//返回类型的地方的void表示函数没有返回值
//void print()
//{
//	printf("hello world\n");
//}
//
//int main()
//{
//	print();
//	return 0;
//}


//需要返回值时，选择合适的返回值类型
//int test()
//{
//	int a = 0;
//	scanf("%d", &a);
//	if (a > 0)
//		return 1;
//	else
//		return 0;
//}
//
//int main()
//{
//	int ret = test();
//	printf("%d", ret);
//	return 0;
//}

// return后边也可以什么都没有，直接写 return; 这种写法适合函数返回类型是void的情况。
// return语句执⾏后，函数就彻底返回，后边的代码不再执⾏
//void test()
//{
//	printf("hehe\n");
//	if (1)
//		return; //如果判断为真，那么程序到此结束
//	printf("haha\n");
//}
//
//int main()
//{
//	test();
//	return 0;
//}


 // return返回的值和函数返回类型不⼀致，系统会⾃动将返回的值隐式转换为函数的返回类型。
//int test()
//{
//	return 3.14;
//}
//
//int main()
//{
//	int a = test();
//	printf("%d", a);
//	return 0;
//}
// 输出结果为3


// 数组做函数参数
//void set_arr(int arr[10], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		arr[i] = -1;
//	}
//}
//
//void print(int arr[10], int sz)
//{
//	int j = 0;
//	for (j = 0; j < sz; j++)
//	{
//		printf("%d", arr[j]);
//	}
//	printf("\n");
//}
//
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//
//	print(arr, sz);
//	set_arr(arr, sz);
//	print(arr, sz);
//	return 0;
//}

//二维数组做函数参数
//void print_arr(int arr[3][5], int r, int c)
//{
//	int i = 0;
//	for (i = 0; i < r; i++)
//	{
//		int j = 0;
//		for (j = 0; j < c; j++)
//		{
//			printf("%d", arr[i][j]);
//		}
//		printf("\n");
//	}
//}
//
//int main()
//{
//	int arr[3][5] = { 1,2,3,4,5 ,2,3,4,5,6 ,3,4,5,6,7 };
//	print_arr(arr, 3, 5);
//	return 0;
//}


// 计算某年某月有多少天？
//int is_leap_year(int y) //判断是否是闰年
//{
//
//	if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//		return 1;
//	else
//		return 0;
//}
//
//int get_days_of_month(int y, int m)
//{
//	int days[] = { 0, 31,28,31,30,31,30,31,31,30,31,30,31 };
//	int day = days[m];
//	if (is_leap_year(y) == 1 && m == 2)
//	{
//		day++;
//	}
//	return day;
//}
//
//int main()
//{
//	int year = 0;
//	int month = 0;
//	scanf("%d %d", &year, &month);
//	//计算某年某月有多少天
//	int day = get_days_of_month(year, month);
//	printf("%d\n", day);
//	return 0;
//}


//链式访问
//int main()
//{
//	printf("%d\n", strlen("abcdef"));
//	return 0;
//}

// 在看⼀个有趣的代码，下⾯代码执⾏的结果是什么呢？
#include<stdio.h>
int main()
{
	printf("%d", printf("%d", printf("%d", 43)));
	return 0;
}
//结果为4321，43/2/1